package com.cy.pj.sys.dao;

import com.cy.pj.common.pojo.Node;
import com.cy.pj.sys.pojo.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Set;

@Mapper
public interface SysMenuDao {

    /**
     * 基于用户id查询菜单权限标识(permission)
     * @param userId
     * @return
     */
    public Set<String> selectUserPermissions(Integer userId);

    /**
     * 查询所有菜单，以及菜单对应的上级菜单名称
     * @return
     */
    public List<SysMenu> selectMenus();

    /**
     * 查询树节点信息，在添加或编辑菜单时，会以树结构的形式呈现上级菜单
     * @return
     */
    @Select("select id,name,parentId from sys_menus")
    public List<Node> selectMenuTreeNodes();

    /**
     * 向数据库表中添加菜单
     * @param sysMenu
     * @return
     */
    public int insertMenu(SysMenu sysMenu);

    /**
     * 基于id更新菜单信息
     * @param sysMenu
     * @return
     */
    public int updateMenu(SysMenu sysMenu);
}
